﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using UAXInversionesWeb.logicaNegocio;

namespace UAXInversionesWeb.cliente
{
    public partial class CancelarOrden : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (HttpContext.Current.Session["identificador"] != null)
            {
                // tenemos que cargar los valores de la tabla mostrando las posibles cancelaciones
                Acciones[] acciones = Proxy.listadoDeOrdenesPendientes((int)HttpContext.Current.Session["identificador"]);

                if (acciones.Length > 0)
                {
                    mensaje.Text = "";
                    Table1.Visible = true;

                    TableRow row;
                    TableCell cell1, cell2, cell3, cell4,cell5,cell6;
                    double valor;
                    string acronimo;

                    for (int i = 0; i < acciones.Length; i++)
                    {
                        row = new TableRow();
                        if (i % 2 != 0)
                        {
                            row.BackColor = System.Drawing.Color.FromArgb(240, 244, 247);
                        }
                        //Empresa acronimo valorAcc numAcc saldoAcc
                        acronimo = acciones[i].getEmpresaCotizante();
                        valor = acciones[i].getValor();

                        cell1 = new TableCell();
                        cell1.HorizontalAlign = HorizontalAlign.Left;
                        cell1.Text = acciones[i].getCodigoDeOrden();
                        row.Cells.Add(cell1);

                        cell2 = new TableCell();
                        cell2.HorizontalAlign = HorizontalAlign.Left;
                        cell2.Text = Proxy.getNombreEmpresa(acronimo);
                        row.Cells.Add(cell2);

                        cell3 = new TableCell();
                        cell3.Text = acronimo;
                        row.Cells.Add(cell3);

                        cell4 = new TableCell();
                        cell4.HorizontalAlign = HorizontalAlign.Right;
                        cell4.Text = valor.ToString("N") + " €";
                        row.Cells.Add(cell4);

                        cell5 = new TableCell();
                        cell5.HorizontalAlign = HorizontalAlign.Right;
                        cell5.Text = acciones[i].getNumeroDeAcciones().ToString();
                        row.Cells.Add(cell5);

                        cell6 = new TableCell();
                        cell6.HorizontalAlign = HorizontalAlign.Right;
                        Button boton = new Button();
                        boton.Text = "Cancelar";
                        boton.ID = acciones[i].getCodigoDeOrden();
                        boton.Click += new EventHandler(procesarCancelacion_click);
                        cell6.Controls.Add(boton);
                        row.Cells.Add(cell6);

                        Table1.Rows.Add(row);
                    }
                }
                else
                {
                    Table1.Visible = false;
                    mensaje.Text = "No hay ordenes pendientes actualmente.";
                }

            }
        }

        protected void procesarCancelacion_click(object sender, EventArgs e)
        {
            string codigoOrden = ((Button)sender).ID;
            bool resultado = Proxy.cancelarOrden(codigoOrden);
            if (resultado)
            {
                Response.Write("<script>alert('Cancelar orden con id: " + codigoOrden + ".')</script>");
            }
            else
            {
                Response.Write("<script>alert('Se produjo un error en el servidor.')</script>");
            }
        }
    }
}
